package cn.rengy.tool.zip;

import cn.hutool.core.io.FileUtil;
import cn.rengy.util.ExceptionPrintUtils;
import lombok.extern.slf4j.Slf4j;
import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import java.io.File;
import java.io.IOException;
@Slf4j
public class ZipUtil {

    /**
     * 压缩文件，删除源文件
     * @param sourceFile
     * @param zipFile
     * @throws IOException
     */
    public static void zip(File sourceFile,File zipFile) throws IOException {
        zip( sourceFile, zipFile,true);
    }

    public static void zip(File sourceFile,File zipFile,boolean deleteSource) throws IOException {
        try {
            if(sourceFile.isFile()){
                //压缩文件
                new ZipFile(zipFile).addFile(sourceFile);
            }else{
                //压缩文件夹
                new ZipFile(zipFile).addFolder(sourceFile);
            }

        } catch (ZipException e) {
            log.error(ExceptionPrintUtils.getTrace(e));
            return ;
        }
        //生成压缩文件后删除源文件 java自带的删除只能删除空目录
        FileUtil.del(sourceFile);
    }
}
